#ifndef BASEMODEL_COMMON_H
#define BASEMODEL_COMMON_H

#include <stdint.h>
#include <stdbool.h>

// 字符串最大长度定义
#define MAX_STRING_LEN 256
#define MAX_URL_LEN 512
#define MAX_TEXT_LEN 1024
#define MAX_SESSION_ID_LEN 64
#define MAX_TOKEN_LEN 256
#define MAX_ENDPOINT_LEN 128
#define MAX_METHOD_LEN 64
#define MAX_FORMAT_LEN 32
#define MAX_TRANSPORT_LEN 32
#define MAX_ENCRYPTION_LEN 32
#define MAX_KEY_LEN 64
#define MAX_NONCE_LEN 32
#define MAX_ERROR_MSG_LEN 256
#define MAX_VERSION_LEN 32
#define MAX_NAME_LEN 128
#define MAX_DESCRIPTION_LEN 512
#define MAX_EMOTION_LEN 32

// 固定长度字符串类型
typedef char string_t[MAX_STRING_LEN];
typedef char url_t[MAX_URL_LEN];
typedef char text_t[MAX_TEXT_LEN];
typedef char session_id_t[MAX_SESSION_ID_LEN];
typedef char token_t[MAX_TOKEN_LEN];
typedef char endpoint_t[MAX_ENDPOINT_LEN];
typedef char method_t[MAX_METHOD_LEN];
typedef char format_t[MAX_FORMAT_LEN];
typedef char transport_t[MAX_TRANSPORT_LEN];
typedef char encryption_t[MAX_ENCRYPTION_LEN];
typedef char key_t[MAX_KEY_LEN];
typedef char nonce_t[MAX_NONCE_LEN];
typedef char error_msg_t[MAX_ERROR_MSG_LEN];
typedef char version_t[MAX_VERSION_LEN];
typedef char name_t[MAX_NAME_LEN];
typedef char description_t[MAX_DESCRIPTION_LEN];
typedef char emotion_t[MAX_EMOTION_LEN];

// 消息类型枚举
typedef enum {
    MSG_TYPE_HELLO,
    MSG_TYPE_LISTEN,
    MSG_TYPE_TTS,
    MSG_TYPE_STT,
    MSG_TYPE_LLM,
    MSG_TYPE_MCP
} msg_type_t;

// 监听状态枚举
typedef enum {
    LISTEN_STATE_START,
    LISTEN_STATE_DETECT
} listen_state_t;

// 监听模式枚举
typedef enum {
    LISTEN_MODE_REALTIME
} listen_mode_t;

// TTS状态枚举
typedef enum {
    TTS_STATE_START,
    TTS_STATE_SENTENCE_START,
    TTS_STATE_SENTENCE_END,
    TTS_STATE_STOP
} tts_state_t;

// JSON-RPC版本枚举
typedef enum {
    JSONRPC_VERSION_2_0
} jsonrpc_version_t;

#endif // BASEMODEL_COMMON_H
